var sz_Constants_type = {
    OBJECT: 0,
    NUMBER: 1,
    STRING: 2,
    OTHER: 3
    //OBJECT, NUMBER, STRING, OTHER
}
/**
 * Created by wangshaohua on 2017/4/19.
 */
var sz_ConstantsService = {
    // setString: function (key, val) {
    //     sz_ConstantsService.setItem(key, val);
    // },
    setItem: function (key, value) {
        if (sz_ConstantsService.isStorageSupported()) {
            const obj = {value: value, type: sz_Constants_type.OTHER};
            if (sz_StringHelper.isObject(value)) {
                obj.type = sz_Constants_type.OBJECT
            } else if (sz_StringHelper.isNumber(value)) {
                obj.type = sz_Constants_type.NUMBER
            } else if (sz_StringHelper.isString(value)) {
                obj.type = sz_Constants_type.STRING
            } else {
                obj.type = sz_Constants_type.OTHER
            }
            // if (obj.value && obj.value.$resource !== undefined) {
            //     obj.value = sz_StringHelper.remove$Prefix(obj.value);
            // }
            window.sessionStorage.setItem(key, JSON.stringify(obj));
        }
    },
    getItem: function (key) {
        try {
            const obj = JSON.parse(window.sessionStorage.getItem(key));
            if (obj === sz_Constants_type.NUMBER) {
                return parseInt(obj.value, 10);
            } else {
                return obj.value;
            }
        } catch (error) {
            return window.sessionStorage.getItem(key);
        }
    },
    hasItem: function (key) {
        if (sz_ConstantsService.isStorageSupported()) {
            var value = window.sessionStorage.getItem(key);
            if (sz_StringHelper.isNotEmpty(value)) {
                return true;
            }
        }
        return false;
    },
    removeItem: function (key) {
        try {
            if (sz_ConstantsService.isStorageSupported()) {
                window.sessionStorage.removeItem(key);
            }
        } catch (e) {
            Log.error(e);
        }
    },
    isStorageSupported: function () {
        var testKey = 'test';
        try {
            window.sessionStorage.setItem(testKey, 'testValue');
            window.sessionStorage.removeItem(testKey);
            return true;
        } catch (error) {
            return false;
        }
    },
    // 判断是否已经登录过了
    isLogin: function () {
        if (sz_StringHelper.isEmpty(sz_RequestHelper.getParameter($sz_Constants.REQUEST_USER_ID))) {
            if (sz_ConstantsService.hasItem($sz_Constants.USER_BEAN)) {
                var userBean = sz_ConstantsService.getItem($sz_Constants.USER_BEAN);
                var uri = sz_RequestHelper.addParam(window.location.href, $sz_Constants.REQUEST_USER_ID, userBean.userId);
                uri = sz_RequestHelper.addParam(uri, $sz_Constants.REQUEST_TOKEN, userBean.token);
                if (sz_ConstantsService.hasItem($sz_Constants.PLATFORM_CODE)) {
                    uri = sz_RequestHelper.addParam(uri, $sz_Constants.REQUEST_PLATFORM_CODE, sz_ConstantsService.getItem($sz_Constants.PLATFORM_CODE));
                }
                // if(window.location.href.indexOf("userId") > 0){
                //     window.location.href = uri;
                // }
            }
        }
        if (sz_StringHelper.isNotEmpty(sz_RequestHelper.getParameter($sz_Constants.REQUEST_USER_ID))) {
            var userBean = new sz_UserBean(sz_RequestHelper.getParameter($sz_Constants.REQUEST_USER_ID), sz_RequestHelper.getParameter($sz_Constants.REQUEST_TOKEN));
            sz_ConstantsService.setItem($sz_Constants.USER_BEAN, userBean);
            sz_ConstantsService.setItem($sz_Constants.REQUEST_USER_ID, userBean.userId);
            sz_ConstantsService.setItem($sz_Constants.REQUEST_TOKEN, userBean.token);

            try {
                if (!$.cookie($sz_Constants.USER_ID) || !$.cookie($sz_Constants.TOKEN)) {
                    $.cookie($sz_Constants.USER_ID, userBean.userId, {expires: 3600, path: '/'});
                    $.cookie($sz_Constants.TOKEN, userBean.token, {expires: 3600, path: '/'});
                }
            } catch (e) {

            }
            if (sz_ConstantsService.validTime()) {
                return true;
            } else {
                return false;
            }
        }
        if (sz_ConstantsService.hasItem($sz_Constants.USER_BEAN)) {
            var userBean = sz_ConstantsService.getItem($sz_Constants.USER_BEAN);
            if (sz_StringHelper.isNotEmpty(userBean.userId) && sz_userActive(userBean.currentActiveTime) == true) {

                // sz_ConstantsService.setItem($sz_Constants.REQUEST_USER_ID, userBean.userId);
                // sz_ConstantsService.setItem($sz_Constants.REQUEST_TOKEN, userBean.token);

                return true;
            }
        }
        return false;
    },
    /**
     * 校验时间，是否已经过期
     */
    validTime: function () {
        if (sz_StringHelper.isNotEmpty(sz_RequestHelper.getParameter($sz_Constants.VALID_TIME))) {
            var v = sz_RequestHelper.getParameter($sz_Constants.VALID_TIME);
            v = v * 1;
            v2 = new Date().getTime() - 200000;
            if (v > v2) {
                return true;
            } else {
                return false;
            }

        } else {
            return false;
        }
    }
}